package com.haiyou.common.thread;

import com.haiyou.common.system.SystemProperties;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 
 * 
 * @Description: 线程管理类
 * @author xingyuan
 * @date 2022年6月1日 下午8:43:59
 */
public class ThreadManager {

	public static int getThreadCount(ThreadEnum threadEnum) {
		return SystemProperties.getIntValue(threadEnum.type, threadEnum.threadCount);
	}
	
	@AllArgsConstructor
	@Getter
	static public enum ThreadEnum {
		 
		/**
		 * 定时器线程数
		 */
		scheduled_thread("scheduled.thread.num", 4),
		/**
		 * redisson 线程数
		 */
		redisson_thread("redisson.thread.num", 2), 
		
		/**
		 * 延迟持久器线程数，只用于本地内存数据入库
		 */
		delay_persister_thread("delay.persister.thread",1),
		
		/**
		 * 冲洗缓存数据的线程池
		 */
		cache_data_flush("cache.data.flush", 4), 

		/**
		 * 日志监控线程
		 */
		log_listener_thread("log.listener.thread.num",1),
		
		/**
		 * netty 消息处理线程
		 */
		netty_logic_thread("netty.logic.thread.num",8),
		/**
		 * netty server 服务器线程
		 */
		netty_work_thread("netty.work.thread.num",4),

		/**
		 * 冲洗缓存数据的线程池
		 */
		data_flush_thread_num("data.flush.thread.num", 4),
		
		/**
		 * 跑马灯线程
		 */
		server_notice_thread_num("server.notice.thread.num",1),
		/**
		 * 玩法结算发奖线程
		 */
		play_settle_reward_thread("play.settle.reward.thread",8),
		
		/**
		 * boss 后台日志线程
		 */
		boss_server_operate_log_thread("boss.server.operate.log.thread",1),
		/**
		 * boss 线程限制操作
		 */
		boss_server_thread_operate_thread("boss.server.thread.operate.thread",1),
		
		/**
		 * 游戏日志记录线程
		 */
		game_log_thread("game.log.thread",2),
		;
		
		private final String type;
		private final int threadCount;
	}
}
